﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Linq.Expressions;
using GestionePolveri2.DAL;
using LinqKit;

namespace GestionePolveriLib.BL.Filters
{
    public class MovimentoScaricoFilterBag : CronologiaFilterBag
    {
        public string Turno { get; set; }
        public new string CausaleScarico { get; set; }
        public new string Impianto { get; set; }

        public MovimentoScaricoFilterBag()
        {

        }

        public override Expression<Func<Movimenti, bool>> SetUpFilter()
        {
            Expression<Func<Movimenti, bool>> retValue = base.SetUpFilter();

            retValue = retValue.And(im => !im.IsDeleted);

            if (!string.IsNullOrWhiteSpace(Turno))
            {
                retValue =  retValue.And(im => im.Turni.Descrizione == Turno);
            }

            if (!string.IsNullOrWhiteSpace(CausaleScarico))
            {
                retValue = retValue.And(im => im.CausaliMagazzino.CodCausale == CausaleScarico);
            }

            if (!string.IsNullOrWhiteSpace(Impianto))
            {
                retValue = retValue.And(im => im.Impianti.Impianto == Impianto);
            }

            return retValue;
        }
    }
}
